package com.neusoft.service;

import com.neusoft.entity.Prescription;
import com.neusoft.utils.Result;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author akemihomurasama
 */
public interface PrescriptionService {
    /**
     * 向处方表中插入数据列表
     *
     * @param prescriptionList 要插入的数据列表
     * @return 插入结果
     */
    Result addPrescriptionList(List<Prescription> prescriptionList);

    /**
     * 根据条件查询处方列表
     *
     * @param prescription 查询条件
     * @return 处方列表
     */
    Result queryPrescriptionByCondition(Prescription prescription);

    /**
     * 根据处方id批量修改处方状态
     *
     * @param drugIdList 药品id列表
     * @param registerId 患者id
     * @return 返回修改结果
     */
    Result patientDrugPay(List<Integer> drugIdList, int registerId);

    /**
     * 给患者发药，修改处方状态为已发药
     *
     * @param drugIdList 药品id列表
     * @param registerId 患者id
     * @return 返回修改结果
     */
    Result giveDrug(List<Integer> drugIdList, int registerId);

    /**
     * 给患者退药，修改处方状态为已退药
     *
     * @param drugIdList 药品id列表
     * @param registerId 患者id
     * @return 返回修改结果
     */
    Result giveUpDrug(List<Integer> drugIdList, int registerId);

    /**
     * 处方列表退钱，修改床房状态为已退款
     * @param prescriptionIdList 处方id列表
     * @return 修改结果
     */
    Result drugMoneyGive(List<Integer> prescriptionIdList);
}
